home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / fbug68k.arc / GO.C < prev    next >
C/C++ Source or Header  |  1989-08-17  |  2KB  |  74 lines

  1. #include"userdef.h"
  2.  
  3. /* *************************************************** */
  4. /* 
  5. Go -> this command hands control over to a program in memory.
  6.  
  7. The objective of this command is to give the user a way to go from
  8. the monitor to a program they have in memory. Return to the monitor is
  9. through a breakpoint, interrupt or simmilar exception.
  10.  
  11. The "go " part of the command line is stripped off. Then a check is made
  12. on the number of arguments. If argc equals 1, then insert breakpoints and use
  13. the value in the pc set by rmcmd for a starting address.
  14. If argc equals 2, then either the -b option and no register was selected, or
  15. a register was selected. If argc equals 3, then -b and a register were
  16. selected. If no register is selected, then a message prompting the user for
  17. a register name is issued. The register selected, either from the command line
  18. or after the prompt, is then used to get a newvalue into that register. 
  19. */
  20. /* *************************************************** */
  21.  
  22. gocmd(argc,argv)
  23. int argc;    /* number of arguments on the command line */
  24. char *argv;    /* command line */
  25. {
  26. extern struct regelem mpu[];    /* table of mpu registers */
  27. register int start;        /* starting address to go to */
  28. extern int error;        /* global error flag from getnum */
  29. extern int regdata;
  30.  
  31.     striparg(argv);
  32.     switch(argc)
  33.     {
  34.         case 1:
  35.             insertbr();
  36.             break;
  37.         case 2:
  38.             if (argv[0] != OPTDEL)
  39.             {
  40.                 start = getnum(argv,ERR02,DEFAULTSCALE);
  41.                 if (error)
  42.                     return(0);
  43.                 mpu[PC].value = start;
  44.                 insertbr();
  45.             }
  46.             else if (argv[1] != 'b')
  47.             {
  48.                 print(ERR04);
  49.                 return(0);
  50.             }
  51.             break;
  52.         case 3:
  53.             if (argv[0] != OPTDEL || argv[1] != 'b')
  54.             {
  55.                 print(ERR04);
  56.                 return(0);
  57.             }
  58.             striparg(argv);
  59.             start = getnum(argv,ERR02,DEFAULTSCALE);
  60.             if (error)
  61.                 return(0);
  62.             mpu[PC].value = start;
  63.             break;
  64.         default:
  65.             print(ERR01);
  66.             return(0);
  67.     }
  68.     prepreg(mpu);
  69.     putmpu();
  70. }
  71.  
  72. /* *************************************************** */
  73.  
  74.